﻿using Util.ExtensionMethods;
using PersistLayer.DAL;
using PersistLayer.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace LojaVirtual.Site.Pages.Loja
{
	public partial class Home : BaseSite
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			if (base.Lj == null)
				Response.Redirect("/Site/Pages/Site/Home.aspx");

			base.PageLoad();
			CarregaSlider();
		}

		public override void CarregaTexto()
		{
			hplInicio.Text = Resources.Geral.Inicio;
			hplInicioLoja.Text = string.Format("{0} {1}", Resources.Geral.PaginaInicialLoja, Lj.NomeFantasia);

			hplInicio			.NavigateUrl = "/Site/Pages/Site/Home.aspx";
			hplInicioLoja	.NavigateUrl = "/Site/Pages/Loja/Home.aspx";

			hplInicio			.Style.Add("color", Lj.CorTextoPrincipal);
			hplInicioLoja	.Style.Add("color", Lj.CorTextoPrincipal);

			hplInicio			.Style.Add("text-decoration", "none");
			hplInicioLoja	.Style.Add("text-decoration", "none");

			hRecomendadosLoja.InnerText = Resources.Geral.RecomendadosPelaLoja;
			hRecomendadosLoja.Style.Add("color", Lj.CorPrincipal);
			hRecomendadosLoja.Style.Add("border-bottom", "4px solid " + Lj.CorPrincipal + ";");
			hNovidades.InnerText = Resources.Geral.Novidades;
			hNovidades.Style.Add("color", Lj.CorPrincipal);
			hNovidades.Style.Add("border-bottom", "4px solid " + Lj.CorPrincipal + ";");
		}

		public override void CarregaDados()
		{
			CarregaRecomendados();
			CarregaNovidades();
		}

		private void CarregaRecomendados()
		{
			DataTable dt = new DataTable();
			dt.Columns.Add("Link");
			dt.Columns.Add("Imagem");
			dt.Columns.Add("displayPromo");
			dt.Columns.Add("Nome");
			dt.Columns.Add("Preco");
			dt.Columns.Add("background");

			foreach (var item in new Produto_RecomendadoDAL().ListarPorLoja(Lj.ID, 20))
			{
				Produto p = new ProdutoDAL().Obter(item.Produto_ID);

				dicRedirect = new Dictionary<string, string>();
				dicRedirect.Add(p.ID.ToString(), Geral.Constantes.QUERY_STRING.PRODUTO_ID);

				if (p.Promocao_ID == null)
					dt.Rows.Add(
						base.Redirecionar("Produto.aspx", dicRedirect),
						ResolveUrl(p.Imagem),
						"style=\"display: none;\"",
						p.Nome,
						"R$ " + p.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
				else
					dt.Rows.Add(
						base.Redirecionar("Produto.aspx", dicRedirect),
						ResolveUrl(p.Imagem),
						"style=\"display: block;\"",
						p.Nome,
						"R$ " + p.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
			}

			rptRecomendados.DataSource = dt;
			rptRecomendados.DataBind();
		}

		private void CarregaNovidades()
		{
			DataTable dt = new DataTable();
			dt.Columns.Add("Link");
			dt.Columns.Add("Imagem");
			dt.Columns.Add("displayPromo");
			dt.Columns.Add("Nome");
			dt.Columns.Add("Preco");
			dt.Columns.Add("background");

			foreach (var item in Lj.Produto.OrderBy(a => a.Data_Inclusao).Take(20).ToList())
			{
				dicRedirect = new Dictionary<string, string>();
				dicRedirect.Add(item.ID.ToString(), Geral.Constantes.QUERY_STRING.PRODUTO_ID);

				if (item.Promocao_ID == null)
					dt.Rows.Add(
						base.Redirecionar("Produto.aspx", dicRedirect),
						ResolveUrl(item.Imagem),
						"style=\"display: none;\"",
						item.Nome,
						"R$ " + item.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
				else
					dt.Rows.Add(
						base.Redirecionar("Produto.aspx", dicRedirect),
						ResolveUrl(item.Imagem),
						"style=\"display: block;\"",
						item.Nome,
						"R$ " + item.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
			}

			rptNovidades.DataSource = dt;
			rptNovidades.DataBind();
		}

		private void CarregaSlider()
		{
			rptSlider.DataSource = new Loja_SliderDAL().ListarSlider(Lj.ID);
			rptSlider.DataBind();
		}

	}
}